#define  _CRT_SECURE_NO_WARQDataType QFront(Queue* p)
{
	assert(p);
	assert(p->Phead);
	return p->Phead->x;
}

void Qpop(Queue* p)
{
	assert(p);
	assert(p->size);
	if (p->Phead->next = NULL)
	{
		free(p->Phead);
		p->Phead = p->tail = NULL;
	}
	else
	{
		Node* next = p->Phead->next;
		free(p->Phead);
		p->Phead = next;
	}
	p->size--;
}




bool QueueEmpty(Queue* p)
{
	assert(p);
	if (p->size == 0)
		return true;
	else
		return false;
}



void TreeLevelInorder(Node* root)
{
	Queue* p;
	QueueInit(p);
	if (root)
	{
		Qpush(p, root);
	}
	while (!QueueEmpty(p))
	{
		Node* Front = QFront(p);
		Qpop(p);
		printf("%d", Front->x);
		if (Front->left)
			Qpush(p, Front->left);
		if (Front->right)
			Qpush(p, Front->right);
	}
	QueueDestroy(p);
}

bool treeComplete(Node* root)
{
	Queue* p;
	QueueInit(p);
	if (root != NULL)
	{
		Qpush(p, root);
	}

	while (!QueueEmpty(&p))
	{
		Node* Front = QFront(p);
		Qpop(p);
		if (Front == NULL)
		{
			break;
		}
		Qpush(p, Front->)
	}



}NINGS 1